//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(new Number(+0) << new Number(+0));
write(new Number(+0) << new Number(-0));
write(new Number(+0) << new Number(0));
write(new Number(+0) << new Number(0.0));
write(new Number(+0) << new Number(-0.0));
write(new Number(+0) << new Number(+0.0));
write(new Number(+0) << new Number(1));
write(new Number(+0) << new Number(10));
write(new Number(+0) << new Number(10.0));
write(new Number(+0) << new Number(10.1));
write(new Number(+0) << new Number(-1));
write(new Number(+0) << new Number(-10));
write(new Number(+0) << new Number(-10.0));
write(new Number(+0) << new Number(-10.1));
write(new Number(+0) << new Number(Number.MAX_VALUE));
write(new Number(+0) << new Number(Number.MIN_VALUE));
write(new Number(+0) << new Number(Number.NaN));
write(new Number(+0) << new Number(Number.POSITIVE_INFINITY));
write(new Number(+0) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(+0) << '');
write(new Number(+0) << 0xa);
write(new Number(+0) << 04);
write(new Number(+0) << 'hello');
write(new Number(+0) << 'hel' + 'lo');
write(new Number(+0) << String(''));
write(new Number(+0) << String('hello'));
write(new Number(+0) << String('h' + 'ello'));
write(new Number(+0) << new String(''));
write(new Number(+0) << new String('hello'));
write(new Number(+0) << new String('he' + 'llo'));
write(new Number(+0) << new Object());
write(new Number(+0) << new Object());
write(new Number(+0) << [1, 2, 3]);
write(new Number(+0) << [1 ,2 , 3]);
write(new Number(+0) << new Array(3));
write(new Number(+0) << Array(3));
write(new Number(+0) << new Array(1 ,2 ,3));
write(new Number(+0) << Array(1));
write(new Number(+0) << foo);
write(new Number(-0) << undefined);
write(new Number(-0) << null);
write(new Number(-0) << true);
write(new Number(-0) << false);
write(new Number(-0) << Boolean(true));
write(new Number(-0) << Boolean(false));
write(new Number(-0) << new Boolean(true));
write(new Number(-0) << new Boolean(false));
write(new Number(-0) << NaN);
write(new Number(-0) << +0);
write(new Number(-0) << -0);
write(new Number(-0) << 0);
write(new Number(-0) << 0.0);
write(new Number(-0) << -0.0);
write(new Number(-0) << +0.0);
write(new Number(-0) << 1);
write(new Number(-0) << 10);
write(new Number(-0) << 10.0);
write(new Number(-0) << 10.1);
write(new Number(-0) << -1);
write(new Number(-0) << -10);
write(new Number(-0) << -10.0);
write(new Number(-0) << -10.1);
write(new Number(-0) << Number.MAX_VALUE);
write(new Number(-0) << Number.MIN_VALUE);
write(new Number(-0) << Number.NaN);
write(new Number(-0) << Number.POSITIVE_INFINITY);
write(new Number(-0) << Number.NEGATIVE_INFINITY);
write(new Number(-0) << new Number(NaN));
write(new Number(-0) << new Number(+0));
write(new Number(-0) << new Number(-0));
write(new Number(-0) << new Number(0));
write(new Number(-0) << new Number(0.0));
write(new Number(-0) << new Number(-0.0));
write(new Number(-0) << new Number(+0.0));
write(new Number(-0) << new Number(1));
write(new Number(-0) << new Number(10));
write(new Number(-0) << new Number(10.0));
write(new Number(-0) << new Number(10.1));
write(new Number(-0) << new Number(-1));
write(new Number(-0) << new Number(-10));
write(new Number(-0) << new Number(-10.0));
write(new Number(-0) << new Number(-10.1));
write(new Number(-0) << new Number(Number.MAX_VALUE));
write(new Number(-0) << new Number(Number.MIN_VALUE));
write(new Number(-0) << new Number(Number.NaN));
write(new Number(-0) << new Number(Number.POSITIVE_INFINITY));
write(new Number(-0) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(-0) << '');
write(new Number(-0) << 0xa);
write(new Number(-0) << 04);
write(new Number(-0) << 'hello');
write(new Number(-0) << 'hel' + 'lo');
write(new Number(-0) << String(''));
write(new Number(-0) << String('hello'));
write(new Number(-0) << String('h' + 'ello'));
write(new Number(-0) << new String(''));
write(new Number(-0) << new String('hello'));
write(new Number(-0) << new String('he' + 'llo'));
write(new Number(-0) << new Object());
write(new Number(-0) << new Object());
write(new Number(-0) << [1, 2, 3]);
write(new Number(-0) << [1 ,2 , 3]);
write(new Number(-0) << new Array(3));
write(new Number(-0) << Array(3));
write(new Number(-0) << new Array(1 ,2 ,3));
write(new Number(-0) << Array(1));
write(new Number(-0) << foo);
write(new Number(0) << undefined);
write(new Number(0) << null);
write(new Number(0) << true);
write(new Number(0) << false);
write(new Number(0) << Boolean(true));
write(new Number(0) << Boolean(false));
write(new Number(0) << new Boolean(true));
write(new Number(0) << new Boolean(false));
write(new Number(0) << NaN);
write(new Number(0) << +0);
write(new Number(0) << -0);
write(new Number(0) << 0);
write(new Number(0) << 0.0);
write(new Number(0) << -0.0);
write(new Number(0) << +0.0);
write(new Number(0) << 1);
write(new Number(0) << 10);
write(new Number(0) << 10.0);
write(new Number(0) << 10.1);
write(new Number(0) << -1);
write(new Number(0) << -10);
write(new Number(0) << -10.0);
write(new Number(0) << -10.1);
write(new Number(0) << Number.MAX_VALUE);
write(new Number(0) << Number.MIN_VALUE);
write(new Number(0) << Number.NaN);
write(new Number(0) << Number.POSITIVE_INFINITY);
write(new Number(0) << Number.NEGATIVE_INFINITY);
write(new Number(0) << new Number(NaN));
write(new Number(0) << new Number(+0));
write(new Number(0) << new Number(-0));
write(new Number(0) << new Number(0));
write(new Number(0) << new Number(0.0));
write(new Number(0) << new Number(-0.0));
write(new Number(0) << new Number(+0.0));
write(new Number(0) << new Number(1));
write(new Number(0) << new Number(10));
write(new Number(0) << new Number(10.0));
write(new Number(0) << new Number(10.1));
write(new Number(0) << new Number(-1));
write(new Number(0) << new Number(-10));
write(new Number(0) << new Number(-10.0));
write(new Number(0) << new Number(-10.1));
write(new Number(0) << new Number(Number.MAX_VALUE));
write(new Number(0) << new Number(Number.MIN_VALUE));
write(new Number(0) << new Number(Number.NaN));
write(new Number(0) << new Number(Number.POSITIVE_INFINITY));
write(new Number(0) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(0) << '');
write(new Number(0) << 0xa);
write(new Number(0) << 04);
write(new Number(0) << 'hello');
write(new Number(0) << 'hel' + 'lo');
write(new Number(0) << String(''));
write(new Number(0) << String('hello'));
write(new Number(0) << String('h' + 'ello'));
write(new Number(0) << new String(''));
write(new Number(0) << new String('hello'));
write(new Number(0) << new String('he' + 'llo'));
write(new Number(0) << new Object());
write(new Number(0) << new Object());
write(new Number(0) << [1, 2, 3]);
write(new Number(0) << [1 ,2 , 3]);
write(new Number(0) << new Array(3));
write(new Number(0) << Array(3));
write(new Number(0) << new Array(1 ,2 ,3));
write(new Number(0) << Array(1));
write(new Number(0) << foo);
write(new Number(0.0) << undefined);
write(new Number(0.0) << null);
write(new Number(0.0) << true);
write(new Number(0.0) << false);
write(new Number(0.0) << Boolean(true));
write(new Number(0.0) << Boolean(false));
write(new Number(0.0) << new Boolean(true));
write(new Number(0.0) << new Boolean(false));
write(new Number(0.0) << NaN);
write(new Number(0.0) << +0);
write(new Number(0.0) << -0);
write(new Number(0.0) << 0);
write(new Number(0.0) << 0.0);
write(new Number(0.0) << -0.0);
write(new Number(0.0) << +0.0);
write(new Number(0.0) << 1);
write(new Number(0.0) << 10);
write(new Number(0.0) << 10.0);
write(new Number(0.0) << 10.1);
write(new Number(0.0) << -1);
write(new Number(0.0) << -10);
write(new Number(0.0) << -10.0);
write(new Number(0.0) << -10.1);
write(new Number(0.0) << Number.MAX_VALUE);
write(new Number(0.0) << Number.MIN_VALUE);
write(new Number(0.0) << Number.NaN);
write(new Number(0.0) << Number.POSITIVE_INFINITY);
write(new Number(0.0) << Number.NEGATIVE_INFINITY);
write(new Number(0.0) << new Number(NaN));
write(new Number(0.0) << new Number(+0));
write(new Number(0.0) << new Number(-0));
write(new Number(0.0) << new Number(0));
write(new Number(0.0) << new Number(0.0));
write(new Number(0.0) << new Number(-0.0));
write(new Number(0.0) << new Number(+0.0));
write(new Number(0.0) << new Number(1));
write(new Number(0.0) << new Number(10));
write(new Number(0.0) << new Number(10.0));
write(new Number(0.0) << new Number(10.1));
write(new Number(0.0) << new Number(-1));
write(new Number(0.0) << new Number(-10));
write(new Number(0.0) << new Number(-10.0));
write(new Number(0.0) << new Number(-10.1));
write(new Number(0.0) << new Number(Number.MAX_VALUE));
write(new Number(0.0) << new Number(Number.MIN_VALUE));
write(new Number(0.0) << new Number(Number.NaN));
write(new Number(0.0) << new Number(Number.POSITIVE_INFINITY));
write(new Number(0.0) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(0.0) << '');
write(new Number(0.0) << 0xa);
write(new Number(0.0) << 04);
write(new Number(0.0) << 'hello');
write(new Number(0.0) << 'hel' + 'lo');
write(new Number(0.0) << String(''));
write(new Number(0.0) << String('hello'));
write(new Number(0.0) << String('h' + 'ello'));
write(new Number(0.0) << new String(''));
write(new Number(0.0) << new String('hello'));
write(new Number(0.0) << new String('he' + 'llo'));
write(new Number(0.0) << new Object());
write(new Number(0.0) << new Object());
write(new Number(0.0) << [1, 2, 3]);
write(new Number(0.0) << [1 ,2 , 3]);
write(new Number(0.0) << new Array(3));
write(new Number(0.0) << Array(3));
write(new Number(0.0) << new Array(1 ,2 ,3));
write(new Number(0.0) << Array(1));
write(new Number(0.0) << foo);
write(new Number(-0.0) << undefined);
write(new Number(-0.0) << null);
write(new Number(-0.0) << true);
write(new Number(-0.0) << false);
write(new Number(-0.0) << Boolean(true));
write(new Number(-0.0) << Boolean(false));
write(new Number(-0.0) << new Boolean(true));
write(new Number(-0.0) << new Boolean(false));
write(new Number(-0.0) << NaN);
write(new Number(-0.0) << +0);
write(new Number(-0.0) << -0);
write(new Number(-0.0) << 0);
write(new Number(-0.0) << 0.0);
write(new Number(-0.0) << -0.0);
write(new Number(-0.0) << +0.0);
write(new Number(-0.0) << 1);
write(new Number(-0.0) << 10);
write(new Number(-0.0) << 10.0);
write(new Number(-0.0) << 10.1);
write(new Number(-0.0) << -1);
write(new Number(-0.0) << -10);
write(new Number(-0.0) << -10.0);
write(new Number(-0.0) << -10.1);
write(new Number(-0.0) << Number.MAX_VALUE);
write(new Number(-0.0) << Number.MIN_VALUE);
write(new Number(-0.0) << Number.NaN);
write(new Number(-0.0) << Number.POSITIVE_INFINITY);
write(new Number(-0.0) << Number.NEGATIVE_INFINITY);
write(new Number(-0.0) << new Number(NaN));
write(new Number(-0.0) << new Number(+0));
write(new Number(-0.0) << new Number(-0));
write(new Number(-0.0) << new Number(0));
write(new Number(-0.0) << new Number(0.0));
write(new Number(-0.0) << new Number(-0.0));
write(new Number(-0.0) << new Number(+0.0));
write(new Number(-0.0) << new Number(1));
write(new Number(-0.0) << new Number(10));
write(new Number(-0.0) << new Number(10.0));
write(new Number(-0.0) << new Number(10.1));
write(new Number(-0.0) << new Number(-1));
write(new Number(-0.0) << new Number(-10));
write(new Number(-0.0) << new Number(-10.0));
write(new Number(-0.0) << new Number(-10.1));
write(new Number(-0.0) << new Number(Number.MAX_VALUE));
write(new Number(-0.0) << new Number(Number.MIN_VALUE));
write(new Number(-0.0) << new Number(Number.NaN));
write(new Number(-0.0) << new Number(Number.POSITIVE_INFINITY));
write(new Number(-0.0) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(-0.0) << '');
write(new Number(-0.0) << 0xa);
write(new Number(-0.0) << 04);
write(new Number(-0.0) << 'hello');
write(new Number(-0.0) << 'hel' + 'lo');
write(new Number(-0.0) << String(''));
write(new Number(-0.0) << String('hello'));
write(new Number(-0.0) << String('h' + 'ello'));
write(new Number(-0.0) << new String(''));
write(new Number(-0.0) << new String('hello'));
write(new Number(-0.0) << new String('he' + 'llo'));
write(new Number(-0.0) << new Object());
write(new Number(-0.0) << new Object());
write(new Number(-0.0) << [1, 2, 3]);
write(new Number(-0.0) << [1 ,2 , 3]);
write(new Number(-0.0) << new Array(3));
write(new Number(-0.0) << Array(3));
write(new Number(-0.0) << new Array(1 ,2 ,3));
write(new Number(-0.0) << Array(1));
write(new Number(-0.0) << foo);
write(new Number(+0.0) << undefined);
write(new Number(+0.0) << null);
write(new Number(+0.0) << true);
write(new Number(+0.0) << false);
write(new Number(+0.0) << Boolean(true));
write(new Number(+0.0) << Boolean(false));
write(new Number(+0.0) << new Boolean(true));
write(new Number(+0.0) << new Boolean(false));
write(new Number(+0.0) << NaN);
write(new Number(+0.0) << +0);
write(new Number(+0.0) << -0);
write(new Number(+0.0) << 0);
write(new Number(+0.0) << 0.0);
write(new Number(+0.0) << -0.0);
write(new Number(+0.0) << +0.0);
write(new Number(+0.0) << 1);
write(new Number(+0.0) << 10);
write(new Number(+0.0) << 10.0);
write(new Number(+0.0) << 10.1);
write(new Number(+0.0) << -1);
write(new Number(+0.0) << -10);
write(new Number(+0.0) << -10.0);
write(new Number(+0.0) << -10.1);
write(new Number(+0.0) << Number.MAX_VALUE);
write(new Number(+0.0) << Number.MIN_VALUE);
write(new Number(+0.0) << Number.NaN);
write(new Number(+0.0) << Number.POSITIVE_INFINITY);
write(new Number(+0.0) << Number.NEGATIVE_INFINITY);
write(new Number(+0.0) << new Number(NaN));
write(new Number(+0.0) << new Number(+0));
write(new Number(+0.0) << new Number(-0));
write(new Number(+0.0) << new Number(0));
write(new Number(+0.0) << new Number(0.0));
write(new Number(+0.0) << new Number(-0.0));
write(new Number(+0.0) << new Number(+0.0));
write(new Number(+0.0) << new Number(1));
write(new Number(+0.0) << new Number(10));
write(new Number(+0.0) << new Number(10.0));
write(new Number(+0.0) << new Number(10.1));
write(new Number(+0.0) << new Number(-1));
write(new Number(+0.0) << new Number(-10));
write(new Number(+0.0) << new Number(-10.0));
write(new Number(+0.0) << new Number(-10.1));
write(new Number(+0.0) << new Number(Number.MAX_VALUE));
write(new Number(+0.0) << new Number(Number.MIN_VALUE));
write(new Number(+0.0) << new Number(Number.NaN));
write(new Number(+0.0) << new Number(Number.POSITIVE_INFINITY));
write(new Number(+0.0) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(+0.0) << '');
write(new Number(+0.0) << 0xa);
write(new Number(+0.0) << 04);
write(new Number(+0.0) << 'hello');
write(new Number(+0.0) << 'hel' + 'lo');
write(new Number(+0.0) << String(''));
write(new Number(+0.0) << String('hello'));
write(new Number(+0.0) << String('h' + 'ello'));
write(new Number(+0.0) << new String(''));
write(new Number(+0.0) << new String('hello'));
write(new Number(+0.0) << new String('he' + 'llo'));
write(new Number(+0.0) << new Object());
write(new Number(+0.0) << new Object());
write(new Number(+0.0) << [1, 2, 3]);
write(new Number(+0.0) << [1 ,2 , 3]);
write(new Number(+0.0) << new Array(3));
write(new Number(+0.0) << Array(3));
write(new Number(+0.0) << new Array(1 ,2 ,3));
write(new Number(+0.0) << Array(1));
write(new Number(+0.0) << foo);
write(new Number(1) << undefined);
write(new Number(1) << null);
write(new Number(1) << true);
write(new Number(1) << false);
write(new Number(1) << Boolean(true));
write(new Number(1) << Boolean(false));
write(new Number(1) << new Boolean(true));
write(new Number(1) << new Boolean(false));
write(new Number(1) << NaN);
write(new Number(1) << +0);
write(new Number(1) << -0);
write(new Number(1) << 0);
write(new Number(1) << 0.0);
write(new Number(1) << -0.0);
write(new Number(1) << +0.0);
write(new Number(1) << 1);
write(new Number(1) << 10);
write(new Number(1) << 10.0);
write(new Number(1) << 10.1);
write(new Number(1) << -1);
write(new Number(1) << -10);
write(new Number(1) << -10.0);
write(new Number(1) << -10.1);
write(new Number(1) << Number.MAX_VALUE);
write(new Number(1) << Number.MIN_VALUE);
write(new Number(1) << Number.NaN);
write(new Number(1) << Number.POSITIVE_INFINITY);
write(new Number(1) << Number.NEGATIVE_INFINITY);
write(new Number(1) << new Number(NaN));
write(new Number(1) << new Number(+0));
write(new Number(1) << new Number(-0));
write(new Number(1) << new Number(0));
write(new Number(1) << new Number(0.0));
write(new Number(1) << new Number(-0.0));
write(new Number(1) << new Number(+0.0));
write(new Number(1) << new Number(1));
write(new Number(1) << new Number(10));
write(new Number(1) << new Number(10.0));
write(new Number(1) << new Number(10.1));
write(new Number(1) << new Number(-1));
write(new Number(1) << new Number(-10));
write(new Number(1) << new Number(-10.0));
write(new Number(1) << new Number(-10.1));
write(new Number(1) << new Number(Number.MAX_VALUE));
write(new Number(1) << new Number(Number.MIN_VALUE));
write(new Number(1) << new Number(Number.NaN));
write(new Number(1) << new Number(Number.POSITIVE_INFINITY));
write(new Number(1) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(1) << '');
write(new Number(1) << 0xa);
write(new Number(1) << 04);
write(new Number(1) << 'hello');
write(new Number(1) << 'hel' + 'lo');
write(new Number(1) << String(''));
write(new Number(1) << String('hello'));
write(new Number(1) << String('h' + 'ello'));
write(new Number(1) << new String(''));
write(new Number(1) << new String('hello'));
write(new Number(1) << new String('he' + 'llo'));
write(new Number(1) << new Object());
write(new Number(1) << new Object());
write(new Number(1) << [1, 2, 3]);
write(new Number(1) << [1 ,2 , 3]);
write(new Number(1) << new Array(3));
write(new Number(1) << Array(3));
write(new Number(1) << new Array(1 ,2 ,3));
write(new Number(1) << Array(1));
write(new Number(1) << foo);
write(new Number(10) << undefined);
write(new Number(10) << null);
write(new Number(10) << true);
write(new Number(10) << false);
write(new Number(10) << Boolean(true));
write(new Number(10) << Boolean(false));
write(new Number(10) << new Boolean(true));
write(new Number(10) << new Boolean(false));
write(new Number(10) << NaN);
write(new Number(10) << +0);
write(new Number(10) << -0);
write(new Number(10) << 0);
write(new Number(10) << 0.0);
write(new Number(10) << -0.0);
write(new Number(10) << +0.0);
write(new Number(10) << 1);
write(new Number(10) << 10);
write(new Number(10) << 10.0);
write(new Number(10) << 10.1);
write(new Number(10) << -1);
write(new Number(10) << -10);
write(new Number(10) << -10.0);
write(new Number(10) << -10.1);
write(new Number(10) << Number.MAX_VALUE);
write(new Number(10) << Number.MIN_VALUE);
write(new Number(10) << Number.NaN);
write(new Number(10) << Number.POSITIVE_INFINITY);
write(new Number(10) << Number.NEGATIVE_INFINITY);
write(new Number(10) << new Number(NaN));
write(new Number(10) << new Number(+0));
write(new Number(10) << new Number(-0));
write(new Number(10) << new Number(0));
write(new Number(10) << new Number(0.0));
write(new Number(10) << new Number(-0.0));
write(new Number(10) << new Number(+0.0));
write(new Number(10) << new Number(1));
write(new Number(10) << new Number(10));
write(new Number(10) << new Number(10.0));
write(new Number(10) << new Number(10.1));
write(new Number(10) << new Number(-1));
write(new Number(10) << new Number(-10));
write(new Number(10) << new Number(-10.0));
write(new Number(10) << new Number(-10.1));
write(new Number(10) << new Number(Number.MAX_VALUE));
write(new Number(10) << new Number(Number.MIN_VALUE));
write(new Number(10) << new Number(Number.NaN));
write(new Number(10) << new Number(Number.POSITIVE_INFINITY));
write(new Number(10) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(10) << '');
write(new Number(10) << 0xa);
write(new Number(10) << 04);
write(new Number(10) << 'hello');
write(new Number(10) << 'hel' + 'lo');
write(new Number(10) << String(''));
write(new Number(10) << String('hello'));
write(new Number(10) << String('h' + 'ello'));
write(new Number(10) << new String(''));
write(new Number(10) << new String('hello'));
write(new Number(10) << new String('he' + 'llo'));
write(new Number(10) << new Object());
write(new Number(10) << new Object());
write(new Number(10) << [1, 2, 3]);
write(new Number(10) << [1 ,2 , 3]);
write(new Number(10) << new Array(3));
write(new Number(10) << Array(3));
write(new Number(10) << new Array(1 ,2 ,3));
write(new Number(10) << Array(1));
write(new Number(10) << foo);
write(new Number(10.0) << undefined);
write(new Number(10.0) << null);
write(new Number(10.0) << true);
write(new Number(10.0) << false);
write(new Number(10.0) << Boolean(true));
write(new Number(10.0) << Boolean(false));
write(new Number(10.0) << new Boolean(true));
write(new Number(10.0) << new Boolean(false));
write(new Number(10.0) << NaN);
write(new Number(10.0) << +0);
write(new Number(10.0) << -0);
write(new Number(10.0) << 0);
write(new Number(10.0) << 0.0);
write(new Number(10.0) << -0.0);
write(new Number(10.0) << +0.0);
write(new Number(10.0) << 1);
write(new Number(10.0) << 10);
write(new Number(10.0) << 10.0);
write(new Number(10.0) << 10.1);
write(new Number(10.0) << -1);
write(new Number(10.0) << -10);
write(new Number(10.0) << -10.0);
write(new Number(10.0) << -10.1);
write(new Number(10.0) << Number.MAX_VALUE);
write(new Number(10.0) << Number.MIN_VALUE);
write(new Number(10.0) << Number.NaN);
write(new Number(10.0) << Number.POSITIVE_INFINITY);
write(new Number(10.0) << Number.NEGATIVE_INFINITY);
write(new Number(10.0) << new Number(NaN));
write(new Number(10.0) << new Number(+0));
write(new Number(10.0) << new Number(-0));
write(new Number(10.0) << new Number(0));
write(new Number(10.0) << new Number(0.0));
write(new Number(10.0) << new Number(-0.0));
write(new Number(10.0) << new Number(+0.0));
write(new Number(10.0) << new Number(1));
write(new Number(10.0) << new Number(10));
write(new Number(10.0) << new Number(10.0));
write(new Number(10.0) << new Number(10.1));
write(new Number(10.0) << new Number(-1));
write(new Number(10.0) << new Number(-10));
write(new Number(10.0) << new Number(-10.0));
write(new Number(10.0) << new Number(-10.1));
write(new Number(10.0) << new Number(Number.MAX_VALUE));
write(new Number(10.0) << new Number(Number.MIN_VALUE));
write(new Number(10.0) << new Number(Number.NaN));
write(new Number(10.0) << new Number(Number.POSITIVE_INFINITY));
write(new Number(10.0) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(10.0) << '');
write(new Number(10.0) << 0xa);
write(new Number(10.0) << 04);
write(new Number(10.0) << 'hello');
write(new Number(10.0) << 'hel' + 'lo');
write(new Number(10.0) << String(''));
write(new Number(10.0) << String('hello'));
write(new Number(10.0) << String('h' + 'ello'));
write(new Number(10.0) << new String(''));
write(new Number(10.0) << new String('hello'));
write(new Number(10.0) << new String('he' + 'llo'));
write(new Number(10.0) << new Object());
write(new Number(10.0) << new Object());
write(new Number(10.0) << [1, 2, 3]);
write(new Number(10.0) << [1 ,2 , 3]);
write(new Number(10.0) << new Array(3));
write(new Number(10.0) << Array(3));
write(new Number(10.0) << new Array(1 ,2 ,3));
write(new Number(10.0) << Array(1));
write(new Number(10.0) << foo);
write(new Number(10.1) << undefined);
write(new Number(10.1) << null);
write(new Number(10.1) << true);
write(new Number(10.1) << false);
write(new Number(10.1) << Boolean(true));
write(new Number(10.1) << Boolean(false));
write(new Number(10.1) << new Boolean(true));
write(new Number(10.1) << new Boolean(false));
write(new Number(10.1) << NaN);
write(new Number(10.1) << +0);
write(new Number(10.1) << -0);
write(new Number(10.1) << 0);
write(new Number(10.1) << 0.0);
write(new Number(10.1) << -0.0);
write(new Number(10.1) << +0.0);
write(new Number(10.1) << 1);
write(new Number(10.1) << 10);
write(new Number(10.1) << 10.0);
write(new Number(10.1) << 10.1);
write(new Number(10.1) << -1);
write(new Number(10.1) << -10);
write(new Number(10.1) << -10.0);
write(new Number(10.1) << -10.1);
write(new Number(10.1) << Number.MAX_VALUE);
write(new Number(10.1) << Number.MIN_VALUE);
write(new Number(10.1) << Number.NaN);
write(new Number(10.1) << Number.POSITIVE_INFINITY);
write(new Number(10.1) << Number.NEGATIVE_INFINITY);
write(new Number(10.1) << new Number(NaN));
write(new Number(10.1) << new Number(+0));
write(new Number(10.1) << new Number(-0));
write(new Number(10.1) << new Number(0));
write(new Number(10.1) << new Number(0.0));
write(new Number(10.1) << new Number(-0.0));
write(new Number(10.1) << new Number(+0.0));
write(new Number(10.1) << new Number(1));
write(new Number(10.1) << new Number(10));
write(new Number(10.1) << new Number(10.0));
write(new Number(10.1) << new Number(10.1));
write(new Number(10.1) << new Number(-1));
write(new Number(10.1) << new Number(-10));
write(new Number(10.1) << new Number(-10.0));
write(new Number(10.1) << new Number(-10.1));
write(new Number(10.1) << new Number(Number.MAX_VALUE));
write(new Number(10.1) << new Number(Number.MIN_VALUE));
write(new Number(10.1) << new Number(Number.NaN));
write(new Number(10.1) << new Number(Number.POSITIVE_INFINITY));
write(new Number(10.1) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(10.1) << '');
write(new Number(10.1) << 0xa);
write(new Number(10.1) << 04);
write(new Number(10.1) << 'hello');
write(new Number(10.1) << 'hel' + 'lo');
write(new Number(10.1) << String(''));
write(new Number(10.1) << String('hello'));
write(new Number(10.1) << String('h' + 'ello'));
write(new Number(10.1) << new String(''));
write(new Number(10.1) << new String('hello'));
write(new Number(10.1) << new String('he' + 'llo'));
write(new Number(10.1) << new Object());
write(new Number(10.1) << new Object());
write(new Number(10.1) << [1, 2, 3]);
write(new Number(10.1) << [1 ,2 , 3]);
write(new Number(10.1) << new Array(3));
write(new Number(10.1) << Array(3));
write(new Number(10.1) << new Array(1 ,2 ,3));
write(new Number(10.1) << Array(1));
write(new Number(10.1) << foo);
write(new Number(-1) << undefined);
write(new Number(-1) << null);
write(new Number(-1) << true);
write(new Number(-1) << false);
write(new Number(-1) << Boolean(true));
write(new Number(-1) << Boolean(false));
write(new Number(-1) << new Boolean(true));
write(new Number(-1) << new Boolean(false));
write(new Number(-1) << NaN);
write(new Number(-1) << +0);
write(new Number(-1) << -0);
write(new Number(-1) << 0);
write(new Number(-1) << 0.0);
write(new Number(-1) << -0.0);
write(new Number(-1) << +0.0);
write(new Number(-1) << 1);
write(new Number(-1) << 10);
write(new Number(-1) << 10.0);
write(new Number(-1) << 10.1);
write(new Number(-1) << -1);
write(new Number(-1) << -10);
write(new Number(-1) << -10.0);
write(new Number(-1) << -10.1);
write(new Number(-1) << Number.MAX_VALUE);
write(new Number(-1) << Number.MIN_VALUE);
write(new Number(-1) << Number.NaN);
write(new Number(-1) << Number.POSITIVE_INFINITY);
write(new Number(-1) << Number.NEGATIVE_INFINITY);
write(new Number(-1) << new Number(NaN));
write(new Number(-1) << new Number(+0));
write(new Number(-1) << new Number(-0));
write(new Number(-1) << new Number(0));
write(new Number(-1) << new Number(0.0));
write(new Number(-1) << new Number(-0.0));
write(new Number(-1) << new Number(+0.0));
write(new Number(-1) << new Number(1));
write(new Number(-1) << new Number(10));
write(new Number(-1) << new Number(10.0));
write(new Number(-1) << new Number(10.1));
write(new Number(-1) << new Number(-1));
write(new Number(-1) << new Number(-10));
write(new Number(-1) << new Number(-10.0));
write(new Number(-1) << new Number(-10.1));
write(new Number(-1) << new Number(Number.MAX_VALUE));
write(new Number(-1) << new Number(Number.MIN_VALUE));
write(new Number(-1) << new Number(Number.NaN));
write(new Number(-1) << new Number(Number.POSITIVE_INFINITY));
write(new Number(-1) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(-1) << '');
write(new Number(-1) << 0xa);
write(new Number(-1) << 04);
write(new Number(-1) << 'hello');
write(new Number(-1) << 'hel' + 'lo');
write(new Number(-1) << String(''));
write(new Number(-1) << String('hello'));
write(new Number(-1) << String('h' + 'ello'));
write(new Number(-1) << new String(''));
write(new Number(-1) << new String('hello'));
write(new Number(-1) << new String('he' + 'llo'));
write(new Number(-1) << new Object());
write(new Number(-1) << new Object());
write(new Number(-1) << [1, 2, 3]);
write(new Number(-1) << [1 ,2 , 3]);
write(new Number(-1) << new Array(3));
write(new Number(-1) << Array(3));
write(new Number(-1) << new Array(1 ,2 ,3));
write(new Number(-1) << Array(1));
write(new Number(-1) << foo);
write(new Number(-10) << undefined);
write(new Number(-10) << null);
write(new Number(-10) << true);
write(new Number(-10) << false);
write(new Number(-10) << Boolean(true));
write(new Number(-10) << Boolean(false));
write(new Number(-10) << new Boolean(true));
write(new Number(-10) << new Boolean(false));
write(new Number(-10) << NaN);
write(new Number(-10) << +0);
write(new Number(-10) << -0);
write(new Number(-10) << 0);
write(new Number(-10) << 0.0);
write(new Number(-10) << -0.0);
write(new Number(-10) << +0.0);
write(new Number(-10) << 1);
write(new Number(-10) << 10);
write(new Number(-10) << 10.0);
write(new Number(-10) << 10.1);
write(new Number(-10) << -1);
write(new Number(-10) << -10);
write(new Number(-10) << -10.0);
write(new Number(-10) << -10.1);
write(new Number(-10) << Number.MAX_VALUE);
write(new Number(-10) << Number.MIN_VALUE);
write(new Number(-10) << Number.NaN);
write(new Number(-10) << Number.POSITIVE_INFINITY);
write(new Number(-10) << Number.NEGATIVE_INFINITY);
write(new Number(-10) << new Number(NaN));
write(new Number(-10) << new Number(+0));
write(new Number(-10) << new Number(-0));
write(new Number(-10) << new Number(0));
write(new Number(-10) << new Number(0.0));
write(new Number(-10) << new Number(-0.0));
write(new Number(-10) << new Number(+0.0));
write(new Number(-10) << new Number(1));
write(new Number(-10) << new Number(10));
write(new Number(-10) << new Number(10.0));
write(new Number(-10) << new Number(10.1));
write(new Number(-10) << new Number(-1));
write(new Number(-10) << new Number(-10));
write(new Number(-10) << new Number(-10.0));
write(new Number(-10) << new Number(-10.1));
write(new Number(-10) << new Number(Number.MAX_VALUE));
write(new Number(-10) << new Number(Number.MIN_VALUE));
write(new Number(-10) << new Number(Number.NaN));
write(new Number(-10) << new Number(Number.POSITIVE_INFINITY));
write(new Number(-10) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(-10) << '');
write(new Number(-10) << 0xa);
write(new Number(-10) << 04);
write(new Number(-10) << 'hello');
write(new Number(-10) << 'hel' + 'lo');
write(new Number(-10) << String(''));
write(new Number(-10) << String('hello'));
write(new Number(-10) << String('h' + 'ello'));
write(new Number(-10) << new String(''));
write(new Number(-10) << new String('hello'));
write(new Number(-10) << new String('he' + 'llo'));
write(new Number(-10) << new Object());
write(new Number(-10) << new Object());
write(new Number(-10) << [1, 2, 3]);
write(new Number(-10) << [1 ,2 , 3]);
write(new Number(-10) << new Array(3));
write(new Number(-10) << Array(3));
write(new Number(-10) << new Array(1 ,2 ,3));
write(new Number(-10) << Array(1));
write(new Number(-10) << foo);
write(new Number(-10.0) << undefined);
write(new Number(-10.0) << null);
write(new Number(-10.0) << true);
write(new Number(-10.0) << false);
write(new Number(-10.0) << Boolean(true));
write(new Number(-10.0) << Boolean(false));
write(new Number(-10.0) << new Boolean(true));
write(new Number(-10.0) << new Boolean(false));
write(new Number(-10.0) << NaN);
write(new Number(-10.0) << +0);
write(new Number(-10.0) << -0);
write(new Number(-10.0) << 0);
write(new Number(-10.0) << 0.0);
write(new Number(-10.0) << -0.0);
write(new Number(-10.0) << +0.0);
write(new Number(-10.0) << 1);
write(new Number(-10.0) << 10);
write(new Number(-10.0) << 10.0);
write(new Number(-10.0) << 10.1);
write(new Number(-10.0) << -1);
write(new Number(-10.0) << -10);
write(new Number(-10.0) << -10.0);
write(new Number(-10.0) << -10.1);
write(new Number(-10.0) << Number.MAX_VALUE);
write(new Number(-10.0) << Number.MIN_VALUE);
write(new Number(-10.0) << Number.NaN);
write(new Number(-10.0) << Number.POSITIVE_INFINITY);
write(new Number(-10.0) << Number.NEGATIVE_INFINITY);
write(new Number(-10.0) << new Number(NaN));
write(new Number(-10.0) << new Number(+0));
write(new Number(-10.0) << new Number(-0));
write(new Number(-10.0) << new Number(0));
write(new Number(-10.0) << new Number(0.0));
write(new Number(-10.0) << new Number(-0.0));
write(new Number(-10.0) << new Number(+0.0));
write(new Number(-10.0) << new Number(1));
write(new Number(-10.0) << new Number(10));
write(new Number(-10.0) << new Number(10.0));
write(new Number(-10.0) << new Number(10.1));
write(new Number(-10.0) << new Number(-1));
write(new Number(-10.0) << new Number(-10));
write(new Number(-10.0) << new Number(-10.0));
write(new Number(-10.0) << new Number(-10.1));
write(new Number(-10.0) << new Number(Number.MAX_VALUE));
write(new Number(-10.0) << new Number(Number.MIN_VALUE));
write(new Number(-10.0) << new Number(Number.NaN));
write(new Number(-10.0) << new Number(Number.POSITIVE_INFINITY));
write(new Number(-10.0) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(-10.0) << '');
write(new Number(-10.0) << 0xa);
write(new Number(-10.0) << 04);
write(new Number(-10.0) << 'hello');
write(new Number(-10.0) << 'hel' + 'lo');
write(new Number(-10.0) << String(''));
write(new Number(-10.0) << String('hello'));
write(new Number(-10.0) << String('h' + 'ello'));
write(new Number(-10.0) << new String(''));
write(new Number(-10.0) << new String('hello'));
write(new Number(-10.0) << new String('he' + 'llo'));
write(new Number(-10.0) << new Object());
write(new Number(-10.0) << new Object());
write(new Number(-10.0) << [1, 2, 3]);
write(new Number(-10.0) << [1 ,2 , 3]);
write(new Number(-10.0) << new Array(3));
write(new Number(-10.0) << Array(3));
write(new Number(-10.0) << new Array(1 ,2 ,3));
write(new Number(-10.0) << Array(1));
write(new Number(-10.0) << foo);
write(new Number(-10.1) << undefined);
write(new Number(-10.1) << null);
write(new Number(-10.1) << true);
write(new Number(-10.1) << false);
write(new Number(-10.1) << Boolean(true));
write(new Number(-10.1) << Boolean(false));
write(new Number(-10.1) << new Boolean(true));
write(new Number(-10.1) << new Boolean(false));
write(new Number(-10.1) << NaN);
write(new Number(-10.1) << +0);
write(new Number(-10.1) << -0);
write(new Number(-10.1) << 0);
write(new Number(-10.1) << 0.0);
write(new Number(-10.1) << -0.0);
write(new Number(-10.1) << +0.0);
write(new Number(-10.1) << 1);
write(new Number(-10.1) << 10);
write(new Number(-10.1) << 10.0);
write(new Number(-10.1) << 10.1);
write(new Number(-10.1) << -1);
write(new Number(-10.1) << -10);
write(new Number(-10.1) << -10.0);
write(new Number(-10.1) << -10.1);
write(new Number(-10.1) << Number.MAX_VALUE);
write(new Number(-10.1) << Number.MIN_VALUE);
write(new Number(-10.1) << Number.NaN);
write(new Number(-10.1) << Number.POSITIVE_INFINITY);
write(new Number(-10.1) << Number.NEGATIVE_INFINITY);
write(new Number(-10.1) << new Number(NaN));
write(new Number(-10.1) << new Number(+0));
write(new Number(-10.1) << new Number(-0));
write(new Number(-10.1) << new Number(0));
write(new Number(-10.1) << new Number(0.0));
write(new Number(-10.1) << new Number(-0.0));
write(new Number(-10.1) << new Number(+0.0));
write(new Number(-10.1) << new Number(1));
write(new Number(-10.1) << new Number(10));
write(new Number(-10.1) << new Number(10.0));
write(new Number(-10.1) << new Number(10.1));
write(new Number(-10.1) << new Number(-1));
write(new Number(-10.1) << new Number(-10));
write(new Number(-10.1) << new Number(-10.0));
write(new Number(-10.1) << new Number(-10.1));
write(new Number(-10.1) << new Number(Number.MAX_VALUE));
write(new Number(-10.1) << new Number(Number.MIN_VALUE));
write(new Number(-10.1) << new Number(Number.NaN));
write(new Number(-10.1) << new Number(Number.POSITIVE_INFINITY));
write(new Number(-10.1) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(-10.1) << '');
write(new Number(-10.1) << 0xa);
write(new Number(-10.1) << 04);
write(new Number(-10.1) << 'hello');
write(new Number(-10.1) << 'hel' + 'lo');
write(new Number(-10.1) << String(''));
write(new Number(-10.1) << String('hello'));
write(new Number(-10.1) << String('h' + 'ello'));
write(new Number(-10.1) << new String(''));
write(new Number(-10.1) << new String('hello'));
write(new Number(-10.1) << new String('he' + 'llo'));
write(new Number(-10.1) << new Object());
write(new Number(-10.1) << new Object());
write(new Number(-10.1) << [1, 2, 3]);
write(new Number(-10.1) << [1 ,2 , 3]);
write(new Number(-10.1) << new Array(3));
write(new Number(-10.1) << Array(3));
write(new Number(-10.1) << new Array(1 ,2 ,3));
write(new Number(-10.1) << Array(1));
write(new Number(-10.1) << foo);
write(new Number(Number.MAX_VALUE) << undefined);
write(new Number(Number.MAX_VALUE) << null);
write(new Number(Number.MAX_VALUE) << true);
write(new Number(Number.MAX_VALUE) << false);
write(new Number(Number.MAX_VALUE) << Boolean(true));
write(new Number(Number.MAX_VALUE) << Boolean(false));
write(new Number(Number.MAX_VALUE) << new Boolean(true));
write(new Number(Number.MAX_VALUE) << new Boolean(false));
write(new Number(Number.MAX_VALUE) << NaN);
write(new Number(Number.MAX_VALUE) << +0);
write(new Number(Number.MAX_VALUE) << -0);
write(new Number(Number.MAX_VALUE) << 0);
write(new Number(Number.MAX_VALUE) << 0.0);
write(new Number(Number.MAX_VALUE) << -0.0);
write(new Number(Number.MAX_VALUE) << +0.0);
write(new Number(Number.MAX_VALUE) << 1);
write(new Number(Number.MAX_VALUE) << 10);
write(new Number(Number.MAX_VALUE) << 10.0);
write(new Number(Number.MAX_VALUE) << 10.1);
write(new Number(Number.MAX_VALUE) << -1);
write(new Number(Number.MAX_VALUE) << -10);
write(new Number(Number.MAX_VALUE) << -10.0);
write(new Number(Number.MAX_VALUE) << -10.1);
write(new Number(Number.MAX_VALUE) << Number.MAX_VALUE);
write(new Number(Number.MAX_VALUE) << Number.MIN_VALUE);
write(new Number(Number.MAX_VALUE) << Number.NaN);
write(new Number(Number.MAX_VALUE) << Number.POSITIVE_INFINITY);
write(new Number(Number.MAX_VALUE) << Number.NEGATIVE_INFINITY);
write(new Number(Number.MAX_VALUE) << new Number(NaN));
write(new Number(Number.MAX_VALUE) << new Number(+0));
write(new Number(Number.MAX_VALUE) << new Number(-0));
write(new Number(Number.MAX_VALUE) << new Number(0));
write(new Number(Number.MAX_VALUE) << new Number(0.0));
write(new Number(Number.MAX_VALUE) << new Number(-0.0));
write(new Number(Number.MAX_VALUE) << new Number(+0.0));
write(new Number(Number.MAX_VALUE) << new Number(1));
write(new Number(Number.MAX_VALUE) << new Number(10));
write(new Number(Number.MAX_VALUE) << new Number(10.0));
write(new Number(Number.MAX_VALUE) << new Number(10.1));
write(new Number(Number.MAX_VALUE) << new Number(-1));
write(new Number(Number.MAX_VALUE) << new Number(-10));
write(new Number(Number.MAX_VALUE) << new Number(-10.0));
write(new Number(Number.MAX_VALUE) << new Number(-10.1));
write(new Number(Number.MAX_VALUE) << new Number(Number.MAX_VALUE));
write(new Number(Number.MAX_VALUE) << new Number(Number.MIN_VALUE));
write(new Number(Number.MAX_VALUE) << new Number(Number.NaN));
write(new Number(Number.MAX_VALUE) << new Number(Number.POSITIVE_INFINITY));
write(new Number(Number.MAX_VALUE) << new Number(Number.NEGATIVE_INFINITY));
write(new Number(Number.MAX_VALUE) << '');
write(new Number(Number.MAX_VALUE) << 0xa);
write(new Number(Number.MAX_VALUE) << 04);
write(new Number(Number.MAX_VALUE) << 'hello');
write(new Number(Number.MAX_VALUE) << 'hel' + 'lo');
write(new Number(Number.MAX_VALUE) << String(''));
write(new Number(Number.MAX_VALUE) << String('hello'));
write(new Number(Number.MAX_VALUE) << String('h' + 'ello'));
write(new Number(Number.MAX_VALUE) << new String(''));
write(new Number(Number.MAX_VALUE) << new String('hello'));
write(new Number(Number.MAX_VALUE) << new String('he' + 'llo'));
write(new Number(Number.MAX_VALUE) << new Object());
write(new Number(Number.MAX_VALUE) << new Object());
write(new Number(Number.MAX_VALUE) << [1, 2, 3]);
write(new Number(Number.MAX_VALUE) << [1 ,2 , 3]);
write(new Number(Number.MAX_VALUE) << new Array(3));
write(new Number(Number.MAX_VALUE) << Array(3));
write(new Number(Number.MAX_VALUE) << new Array(1 ,2 ,3));
write(new Number(Number.MAX_VALUE) << Array(1));
write(new Number(Number.MAX_VALUE) << foo);
write(new Number(Number.MIN_VALUE) << undefined);
write(new Number(Number.MIN_VALUE) << null);
write(new Number(Number.MIN_VALUE) << true);
write(new Number(Number.MIN_VALUE) << false);
write(new Number(Number.MIN_VALUE) << Boolean(true));
write(new Number(Number.MIN_VALUE) << Boolean(false));
write(new Number(Number.MIN_VALUE) << new Boolean(true));
write(new Number(Number.MIN_VALUE) << new Boolean(false));
write(new Number(Number.MIN_VALUE) << NaN);
write(new Number(Number.MIN_VALUE) << +0);
